﻿
namespace Insight.Web.Data
{
    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Linq;
    using System.ServiceModel.DomainServices.Hosting;
    using System.ServiceModel.DomainServices.Server;


    // The MetadataTypeAttribute identifies ApplicationMetadata as the class
    // that carries additional metadata for the Application class.
    [MetadataTypeAttribute(typeof(Application.ApplicationMetadata))]
    public partial class Application
    {

        // This class allows you to attach custom attributes to properties
        // of the Application class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ApplicationMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ApplicationMetadata()
            {
            }

            public int ApplicationId { get; set; }

            public string ApplicationName { get; set; }

            public string Description { get; set; }

            public string PropertyValuesString { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies ProfileMetadata as the class
    // that carries additional metadata for the Profile class.
    [MetadataTypeAttribute(typeof(Profile.ProfileMetadata))]
    public partial class Profile
    {

        // This class allows you to attach custom attributes to properties
        // of the Profile class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class ProfileMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private ProfileMetadata()
            {
            }

            public Nullable<DateTime> LastUpdatedDate { get; set; }

            public int PKID { get; set; }

            public string PropertyNames { get; set; }

            public string PropertyValuesString { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies RoleMetadata as the class
    // that carries additional metadata for the Role class.
    [MetadataTypeAttribute(typeof(Role.RoleMetadata))]
    public partial class Role
    {

        // This class allows you to attach custom attributes to properties
        // of the Role class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class RoleMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private RoleMetadata()
            {
            }

            public string ApplicationName { get; set; }

            public string Rolename { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserMetadata as the class
    // that carries additional metadata for the User class.
    [MetadataTypeAttribute(typeof(User.UserMetadata))]
    public partial class User
    {

        // This class allows you to attach custom attributes to properties
        // of the User class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserMetadata()
            {
            }

            [Display(AutoGenerateField=false )]
            public string ApplicationName { get; set; }

            [Display(Order = 4)]
            public string Comment { get; set; }

            public Nullable<DateTime> CreationDate { get; set; }

            [Display(Order = 2)]
            public string Email { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<int> FailedPasswordAnswerAttemptCount { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<DateTime> FailedPasswordAnswerAttemptWindowStart { get; set; }

            public Nullable<int> FailedPasswordAttemptCount { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<DateTime> FailedPasswordAttemptWindowStart { get; set; }

            public Nullable<sbyte> IsApproved { get; set; }

            public Nullable<sbyte> IsLockedOut { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<bool> IsOnLine { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<DateTime> LastActivityDate { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<DateTime> LastLockedOutDate { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<DateTime> LastLoginDate { get; set; }

            [Display(AutoGenerateField = false)]
            public Nullable<DateTime> LastPasswordChangedDate { get; set; }

            [Display(Order = 3)]
            public string Password { get; set; }

            [Display(AutoGenerateField = false)]
            public string PasswordAnswer { get; set; }

            [Display(AutoGenerateField = false)]
            public string PasswordQuestion { get; set; }

            [Display(AutoGenerateField = false)]
            public int PKID { get; set; }

            [Display(Order=1)]
            public string Username { get; set; }
        }
    }

    // The MetadataTypeAttribute identifies UserInRoleMetadata as the class
    // that carries additional metadata for the UserInRole class.
    [MetadataTypeAttribute(typeof(UserInRole.UserInRoleMetadata))]
    public partial class UserInRole
    {

        // This class allows you to attach custom attributes to properties
        // of the UserInRole class.
        //
        // For example, the following marks the Xyz property as a
        // required property and specifies the format for valid values:
        //    [Required]
        //    [RegularExpression("[A-Z][A-Za-z0-9]*")]
        //    [StringLength(32)]
        //    public string Xyz { get; set; }
        internal sealed class UserInRoleMetadata
        {

            // Metadata classes are not meant to be instantiated.
            private UserInRoleMetadata()
            {
            }

            public string ApplicationName { get; set; }

            public string Rolename { get; set; }

            public string Username { get; set; }
        }
    }
}
